Skip to content

Conversation

@ianktc
Copy link
Contributor Author

ianktc commented Dec 11, 2025

Note: Conversation about the checklist is still pending but I'm going to use this version for now. It can give us a better idea if its useful and how we can improve/change it.

Feed Submission Checklist

Thanks for contributing to the MobilityDatabase!

This is a comprehensive checklist detailing the things to consider before submitting a feed to the database. The schema links in this checklist will follow the convention of [1] for schedule feed schema and [2] for realtime feeds. You will find the schema definitions for schedule and realtime feeds are often the same, but both references are always included for completeness. If you have any questions, reach out to @ianktc.

General Checks

  • Valid Direct Download URL: Does the URL produce a zip file and is it valid gtfs? [1] If realtime, is it a protobuf? [2]
  • Official Status: Is the feed official? Check contact email, direct download URL, website etc. [1] or [2]

Official:

  • Lisboa Carris schedule and realtime feeds (mdb-2926 and mdb-2929)
  • PKP Intercity schedule feed (mdb-2924)
  • Beograd Prigrad schedule feed (mdb-2925)

Unofficial and Unknown:

  • some gitlab sources are considered unofficial (mdb-2927 and mdb-2928)

  • Ukrainian sources could potentially be official, but unsure: mdb-2931 and mdb-2932)

  • Service Status: Is the status active? Check feed_info file for service window. [1] or [2]

  • all feeds are active as verified by validation reports

  • Authentication: Is there any authentication required? [1] or [2] Enum values are described [1] and [2] (they are the same)

  • no feeds require authentication

Is Your Feed New?

  • MDB Stable ID: Correct stable id in the file name? Does it match the mdb_source_id field? [1] or [2]. And stable id in the “latest url” field? [1]
  • Sequential Ordering: Does the stable id increment from latest stable id? Do they increase in sequential order? Refer to this spreadsheet for the latest mdb stable id.

Is Your Feed an Update?

  • Official Status: If unofficial, do not deprecate and redirect the old feed, but import this new feed as unofficial so both feeds are available in the database

  • Deprecate and Redirect: If official, deprecate and redirect the old feed to this updated feed. [1] or [2]

  • Lisboa Carris schedule feed deprecated and redirected (mdb-1032 to mdb-2929)

  • Lisboa Carris realtime feed deprecated and redirected (mdb-2058 to mdb-2930)

Is it a Realtime Feed?

  • Reference: Does it have a reference to the schedule feed? [2]

  • Lisboa Carris realtime feed references its schedule feed (mdb-2930 to mdb-2929)

Pre-existing Feed Existence [internal]

  • Perform a check on the mobility database website to check for pre-existing unpublished (wip) feeds from other sources
  • Sometimes the "old" feed is not included in the feed submission form, perform a check for fuzzy matches on Provider and Direct Download URL. In the case of probable matches, check with the validator for entity count, agency and feed info matches as well.

False Hits:
"Beograd":
new: mdb-2925 https://gtfs-validator-results.mobilitydata.org/c8038bc8-e809-4327-8d12-9add6e2c70a2/report.html
mdb-1120: expired and it has different publisher and entity count https://files.mobilitydatabase.org/mdb-1120/mdb-1120-202402080045/report_7.1.0.html
tld-7488: same as mdb-1120

"Direkcija":
new: mdb-2928 https://gtfs-validator-results.mobilitydata.org/9105352d-8fdd-4022-bbd8-489a84f728b1/report.html
mdb-992: different entity count

Other Considerations [internal]

Sometimes you will encounter two active schedule feeds. There are some possible reasons this may occur:

  • Flex: Flex feeds are sometimes produced separately from schedule feeds. Import the flex feed as a brand new feed instead of a redirect of the schedule feed. [definition]
  • Reference Schedule Feed: One schedule feed may be used as the schedule, while the other is used as a reference to the realtime feed. Look for feeds produced by Passio (or other vehicle tracking software). [example]

],
"provider": "Polskie Koleje Państwowe Intercity (PKP Intercity)",
"urls": {
"direct_download": "https://gtfs.kasznia.net/rt/pkpic.pb",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have a PKP link - if you're confident this is the official one, maybe we can deprecate the unofficial? https://mobilitydatabase.org/feeds/gtfs/mdb-2088

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like the schedule feed tied to this new realtime feed actually! Will make this link

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wait sorry i think i already did make the static reference 😅 It is referencing 2088 already ✅

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My bad! I wasn't delineating between schedule and realtime feeds when I was checking. All good.

"municipality": ""
},
"urls": {
"direct_download": "https://territori.gencat.cat/web/.content/home/serveis/visors-cartografia/bases-cartografiques/infraestructures-mobilitat/autobusos-interurbans/busos-interurbans-GTFS.zip",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I checked the validator results for both these feeds and they appear different (number of entities, publisher, service window). I think they are different but I might be missing something

https://files.mobilitydatabase.org/mdb-2832/mdb-2832-202512100133/report_7.1.0.html
https://gtfs-validator-results.mobilitydata.org/e3822ada-1028-4a96-ac69-e9b5498f6b2d/report.html

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then let's use both for now :)

@ianktc ianktc merged commit 922c44e into main Dec 11, 2025
11 checks passed
@ianktc ianktc deleted the import/december-10-eu-feeds branch December 11, 2025 19:16
@ianktc ianktc self-assigned this Dec 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants